#ifndef COMMAND_H
#define COMMAND_H

#include <QByteArray>
#include <QStringList>
#include <QHostAddress>

/**
 * A command interface [command pattern]
 */
class Command
{
	
public:
	/* The virtual decontructor */
	virtual ~Command() {};
	
	/* This function execute the command */
	virtual void executeCommand(QStringList *l, QHostAddress address) = 0;
	
	/* get the tag of this command */
	virtual QByteArray getTag() = 0;	
	
	/* return the QByteArray of the complete datagram to send */
	virtual QByteArray getCommandDatagram() = 0;

};
#endif
